from typing import List, TypeGuard, Union, Any

# 定义类型守卫函数
def is_string_list(val: List[Any]) -> TypeGuard[List[str]]:
    """检查列表是否只包含字符串"""
    return all(isinstance(x, str) for x in val)

# 使用类型守卫
def process_strings(values: List[Any]) -> None:
    if is_string_list(values):
        # 在这个代码块中，类型检查器知道values是List[str]
        for s in values:
            print(s.upper())  # 安全地调用字符串方法
    else:
        print("List contains non-string elements")